-
Notifications
You must be signed in to change notification settings - Fork 8.2k
samples: subsys: settings: Allow on nrf54L20 PDK #83165
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
samples: subsys: settings: Allow on nrf54L20 PDK #83165
Conversation
|
Test is passing in the internal CI. |
|
FYI: @e-rk , @nordic-piks |
samples/subsys/settings/sample.yaml
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| - nrf54l20pdk/nrf54l20/cpuapp |
There is nothing to test, it's a sample (will follow up with a PR to clean up the rest of the list if I don't forget)
See https://docs.zephyrproject.org/latest/samples/sample_definition_and_criteria.html#twister-should-be-able-to-build-every-sample
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
On that page/chapter there is:
"Use platform_allow to limit test to the platforms the sample was actually verified on. Those platforms should be listed in the sample’s README file."
I believe this sample doesn't work out-of-the box on every platform. At least, nRF boards require some KConfig tweaks. However, I see in the 'boards' directory overlay files for boards that are not listed under platform_allow.
I will add commit that removes platform_allow from this sample to check how CI reacts.
TBC
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
platform_allow must stay. Otherwise integration CI is failing:
INFO - 2 of 27 executed test configurations passed (7.41%), 0 built (not run), 25 failed, 0 errored, with no warnings in 526.21 seconds.
(...)
INFO - The following issues were found (showing the top 10 items):
INFO - 1) sample.subsys.settings on m2gl025_miv/miv failed (Timeout)
INFO - 2) sample.subsys.settings on mps2/an385 failed (Timeout)
INFO - 3) sample.subsys.settings on mps2/an521/cpu0 failed (Timeout)
INFO - 4) sample.subsys.settings on qemu_arc/qemu_arc_em failed (Timeout)
INFO - 5) sample.subsys.settings on qemu_arc/qemu_arc_hs failed (Timeout)
INFO - 6) sample.subsys.settings on qemu_arc/qemu_arc_hs/xip failed (Timeout)
INFO - 7) sample.subsys.settings on qemu_arc/qemu_arc_hs5x failed (Timeout)
INFO - 8) sample.subsys.settings on qemu_arc/qemu_arc_hs6x failed (Timeout)
INFO - 9) sample.subsys.settings on qemu_cortex_a53/qemu_cortex_a53 failed (Timeout)
INFO - 10) sample.subsys.settings on qemu_cortex_a53/qemu_cortex_a53/smp failed (Timeout)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I never asked you to remove platform_allow altogether, just the line you'd added :) see my request for change.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If I remove that line, Twister will skip this test/sample on nrf54l20pdk because it's not in platform_allow.
So, what do You mean by "will follow up with a PR to clean up the rest of the list if I don't forget"?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If I remove that line, Twister will skip this test/sample on nrf54l20pdk because it's not in platform_allow.
Yes, that's the whole point! :) There is no need for Twister to go through each sample and test them against dozen of platforms, this just doesn't scale in terms of project infrastructure.
So, what do You mean by "will follow up with a PR to clean up the rest of the list if I don't forget"?
I would like you to not add the new line, and by follow-up I mean I will clean up the other lines so that people stop unecessarily adding to this list and to keep Twister "testing" to the strict minimum, i.e test that the sample builds fine and runs fine on e.g native sim.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If I remove that line, Twister will skip this test/sample on nrf54l20pdk because it's not in platform_allow.
Yes, that's the whole point! :) There is no need for Twister to go through each sample and test them against dozen of platforms, this just doesn't scale in terms of project infrastructure.
I was referring to Nordic's internal CI that executes on-target Twister tests. Currently, that's the only place where nrf54L20 PDK can be tested.
Based on Twister results we calculate metrics that "give overview" how well each target is tested, SW maturity level, etc. (this statement is an oversimplification).
So, what do You mean by "will follow up with a PR to clean up the rest of the list if I don't forget"?
I would like you to not add the new line, and by follow-up I mean I will clean up the other lines so that people stop unecessarily adding to this list and to keep Twister "testing" to the strict minimum, i.e test that the sample builds fine and runs fine on e.g native sim.
Nordic Management would like to have similar test coverage on nrf54L20 as on other platforms. As a result, I was given task to enable Twister tests on that target (in Nordic's internal CI but this also enables testing in the "upstream CI").
I need to discuss this with my boss because our expectations are conflicting. Unfortunately, he's out of office until January 2025.
So, I guess it's not as simple as run "upstream Twister" with options:
-T TESTSUITE_ROOT, --testsuite-root TESTSUITE_ROOT to select which tests to execute and/or
-P EXCLUDE_PLATFORM, --exclude-platform EXCLUDE_PLATFORM to skip testing on given platform and/or
-p PLATFORM, --platform PLATFORM to run tests on f.e. native sim only.
I will clean up the other lines so that people stop unecessarily adding to this list and to keep Twister "testing" to the strict minimum
Are other manufacturers aware that it's planned to limit "upstream Twister" scope in a way that silently limits test scope in "private Twister runs"?
3f4c140 to
09d124c
Compare
I understand this notion (sample is not a test) but IMO it is not entirely correct. Verifying if the sample builds is a test and we see on a daily basis that even just building bring us some value (finds bugs). What's more, many samples do have associated tests with them (harness: console, verifying the output). This is the case here. So it is a test verifying the correct execution of the sample.
Agree, but IMO we are looking from the wrong perspective. Twister != upstream CI. Twister is a tool to build and execute zephyr tests. It must support usage outside of the upstream CI. So If we continue using platform_allow to limit upstream's CI execution we will end up where we were 5 years ago #25104. This was the whole reason why we even came with integration_platforms #26382. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
would be better to summarize this change in its commit message as samples: subsys: settings: Allow on nrf54L20 PDK ie without 'test'.
09d124c to
58728c7
Compare
Add board specific .conf file and add nrf54l20 PDK to the platform_allow list. Signed-off-by: Sebastian Głąb <[email protected]>
58728c7 to
32cc39c
Compare
We provided an explanation of how platforms in yamls are treated and why platform allow is needed here. It seems it was not an issue when this commit was merged 8627063#diff-7a56f601d57eb0a2e5919c01edf98f890cc9de1f24cf6f3339083599b89809a5
|
@PerMac As you can imagine, I don't necessarily review in details all the PRs that I merge and yes, it looks like this one fell through the cracks (and interestingly one that also very well illustrates the problem at hand, since e.g
Right, but we also have weekly Twister runs ... I don't think that the "belt and braces" approach of tending towards building every sample for every board is really sustainable for the project, and while I understand there is "business value" for the vendors to make sure samples work on their hardware, there needs to be a way for this to not impact the project and its infrastructure at large. |
This is one of cases where platform_allow is needed due to a need of dedicated overlay.
Definitely! But again, it is not the problem, that someone wants to make a given sample compatible with their platforms. The problem is what we (the CI) decides to build/execute. We recognize the unscalability of the current testing approach. This made us to start working on a proper "Test Strategy for Zephyr". The proposal is that we start prioritizing what we test and select tests in scope so there is limited redundancy. We will also claim that the project is not responsible for validating that every test and sample works on every board.
We are on the same page. Vendors can run tests on their setups, provide results, and this could grant the covered platforms some bonus marking in (release) docs that it was verified on-target. It is not Zephyr's responsibility to validate it. An existence of some combination of platform+sample won't automatically mean that such combination will be validated by the project. But without the change in this PR the vendor is not able to validate this sample without doing some hard to maintain workarounds. |
|
@kartben can you revisit this? |
|
This change in itself is just following what was done for other boards in this sample already and what is needed to make this work, i.e. defining Take a look at all the configs: The interesting and worrying part is that we are spending this effort on a sample, and the settings/nvs tests are getting no attention and filters are on a different lavel using NVS is not a board specific option and we should not have board overlays enabling this for sample, it should be enabled by the sample itself and we should look for a better filter and see if it would be possible to remove the platform_allow here. |
|
example of how this could be improved #86479 |
|
and here another one to demonstrate we are spending too much time on samples and running them on hardware when the real tests for the features are suboptimal at some spots and are not executed on platforms and not getting the attention they need re coverage. The ZMS test was an interesting one, not running on ANYTHING. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
prefer a more generic solution like this one here #86479
|
Closing in favour of #86479 |
Include samples: subsys: settings: Enable test on nrf54L20 PDK nrfconnect/sdk-zephyr#2402 zephyrproject-rtos/zephyr#86479 (zephyrproject-rtos/zephyr#83165) Signed-off-by: Sebastian Głąb <[email protected]>
Include samples: subsys: settings: Enable test on nrf54L20 PDK nrfconnect/sdk-zephyr#2402 zephyrproject-rtos/zephyr#86479 (zephyrproject-rtos/zephyr#83165) Signed-off-by: Sebastian Głąb <[email protected]>
Add board specific .conf file and add nrf54l20 PDK to the platform_allow list.